package com.icrazy.platform.service;

import java.util.List;

import com.icrazy.platform.common.page.Page;

/**
 * 业务类接口
 * 
 * 注：1.简单的CRUD可以使用BaseService的实现类BaseServiceImpl 2.比较复杂的业务的可以使用BaseDaoImpl对象去操作。
 * 
 * @author xiaofeng
 * @version 2012-03-15
 */
@SuppressWarnings("rawtypes")
public interface PlatformService {

	/**
	 * 新增
	 * 
	 * @param id
	 *            · namespace 或 namespace.id
	 * @param obj
	 *            需要保存的对象
	 */
	void insert(String id, Object obj);

	/**
	 * 修改
	 * 
	 * @param id
	 *            · namespace 或 namespace.id
	 * @param obj
	 *            需要修改的对象
	 */
	void update(String id, Object obj);

	/**
	 * 删除
	 * 
	 * @param id
	 *            · namespace 或 namespace.id
	 * @param obj
	 *            需要删除的对象
	 */
	void delete(String id, Object obj);

	/**
	 * 查询一行记录
	 * 
	 * @param id
	 *            · namespace 或 namespace.id
	 * @param obj
	 *            查询条件
	 * @return 返回一行记录，可以是简单JavaBean、行数的等
	 */
	Object queryForObject(String id, Object obj);

	/**
	 * 查询集合
	 * 
	 * @param id
	 *            · namespace 或 namespace.id
	 * @param obj
	 *            查询条件
	 * @return 返回列表
	 */
	List queryForList(String id, Object obj);

	/**
	 * 查询集合
	 * 
	 * @param id
	 *            · namespace 或 namespace.id
	 * @param page
	 *            page传入值：new Page(){{setPageNo(?);setPageSize(?);}}
	 * @param obj
	 *            查询条件
	 * @return 返回分页后的列表
	 */
	List queryForPage(String id, Object obj, Page page);
}
